ChatGPT橫空出世之後,各行各業人心惶惶,害怕自己的職場地位是否會被AI所取代。即便是程式設計師也不例外。接下來,將以自己身為Java程式設計師的專業角度,來見識見識ChatGTP所回覆的Java程式碼,能否勝任『資深Java程式設計師』所需具備的專業能力。
我們先詢問ChatGPT針對以下這個問題會給出怎樣的Java程式碼。
問題如下:
我有一組資料: 
1=滿福堡餐、2=豬肉滿福堡餐、3=豬肉滿福堡加蛋餐、4=無敵豬肉滿福堡加蛋餐、5=青蔬滿福堡餐。
當使用者輸入1時,印出『您好,請問您點的是滿福堡餐嗎?』
輸入2時,印出『您好,請問您點的是豬肉滿福堡餐嗎?』
輸入3時,印出『您好,請問您點的是豬肉滿福堡加蛋餐嗎?』
輸入4時,印出『您好,請問您點的是無敵豬肉滿福堡加蛋餐嗎?』
輸入5時,印出『您好,請問您點的是青蔬滿福堡餐嗎?』
以下是聊天的過程:


上面ChatGPT提供的程式碼如下:
import java.util.Scanner;
public class BurgerOrder {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("請輸入您要點的餐點編號(1~5):");
        int orderNum = scanner.nextInt();
        switch(orderNum) {
            case 1:
                System.out.println("您好,請問您點的是滿福堡餐嗎?");
                break;
            case 2:
                System.out.println("您好,請問您點的是豬肉滿福堡餐嗎?");
                break;
            case 3:
                System.out.println("您好,請問您點的是豬肉滿福堡加蛋餐嗎?");
                break;
            case 4:
                System.out.println("您好,請問您點的是無敵豬肉滿福堡加蛋餐嗎?");
                break;
            case 5:
                System.out.println("您好,請問您點的是青蔬滿福堡餐嗎?");
                break;
            default:
                System.out.println("您輸入的餐點編號無效。");
                break;
        }
        scanner.close();
    }
}
初略看一下class的命名是BurgerOrder,是符合題目且可讀性高的命名。另外,ChatGPT選用了switch而非if-else陳述式來完成這個題目,表示對於程式碼的語法選擇也有一定的水準,並非初學者的級別。
即便如此,還是得實測看看ChatGPT給的程式代碼能否正確執行達到我們的題目要求。

執行結果是能滿足需求的。
接下來,要看看程式設計是否具備可維護性、可擴展性。再加入一個『6=鬆餅餐』,看看ChatGPT會如何幫我們調整程式碼吧。
以下是提出新需求的聊天過程:

 比較可惜的是,
比較可惜的是,
// 提示是Hard code寫死,如果是人為修改加入多筆資料容易key錯!
System.out.print("請輸入您要點的餐點編號(1~6):");
另外,
// 直接在加一個case區段,如果是人為修改加入多筆資料容易出錯,例如某區段少打一個break!
case 6:
    System.out.println("您好,請問您點的是鬆餅餐嗎?");
    break;
下一篇再提供我對於同樣的問題所給出的程式解決方案吧!